const path = require('path')
const HtmlWebpackPlugin = require('html-webpack-plugin');
const MiniCssExtractPlugin = require('mini-css-extract-plugin');
module.exports = {
    mode: 'development',
    entry: {
        login: './src/js/login.js',
        reg: './src/js/reg.js',
        index: './src/js/index.js'

    },
    output: {
        path: path.resolve(__dirname, "dist"),
        filename: 'js/[id]_bundle.js',
        clean: true

    },

    module: {
        rules: [
            {
                test: /\.css$/,
                use: [MiniCssExtractPlugin.loader, 'css-loader']
            },


            {
                test: /\.js$/,
                use: [
                    {
                        loader: 'babel-loader',
                        options: {
                            presets: [
                                '@babel/preset-env' //使用这个预设，会根据浏览器来选择插件转化ES5
                            ]
                        }
                    }
                ]
            },
            {
                test: /\.(jpg|png|gif|jpeg|bmp)$/,
                type: 'asset',
                parser: {
                    dataUrlCondition: {
                        maxSize: 1024*1024
                    }
                },
                generator: {
                    filename: 'images/[contenthash][ext]'
                }
            },

        ]
    },

    plugins: [
        new HtmlWebpackPlugin({
            //设置生成的html主文件的模板地址。
            //在模板文件中插入对新生成的js文件的引用。
            template: './src/index.html',
            //生成的文件名，默认是index.html
            filename: 'index.html',
            chunks: ['index']
        }),
        new HtmlWebpackPlugin({
            //设置生成的html主文件的模板地址。
            //在模板文件中插入对新生成的js文件的引用。
            template: './src/login.html',
            //生成的文件名，默认是index.html
            filename: 'login.html',
            chunks: ['login']
        }),
        new HtmlWebpackPlugin({
            //设置生成的html主文件的模板地址。
            //在模板文件中插入对新生成的js文件的引用。
            template: './src/reg.html',
            //生成的文件名，默认是index.html
            filename: 'reg.html',
            chunks: ['reg']
        }),
        new MiniCssExtractPlugin({
            //生成的文件名及路径
            filename: 'css/main_[id].css'
        })

    ],
    devServer: {
        port: 8088,
        hot: 'only',
        open: true,
        watchFiles: ['./src/index.html'],
        static: {
            directory: path.join(__dirname, 'dist')
        },
        proxy: {
            '/api': {
                target: 'http://127.0.0.1:8083',
                // pathRewrite:{'^/api':'/abc'},//api路径重定向为/abc
                changeOrigin: true
            }
        }
    }
};
